/*
 * @Author: hrg
 * @Date: 2023-05-20 14:56:29
 * @LastEditTime: 2023-05-20 16:44:01
 * @FilePath: \study_go\study04\demo\main.go
 * @Description:方法与函数的区别。
 */
/*
	方法与函数的区别：
		-绑定类型：
			-方法：需要绑定指定的数据类型
			-函数：不需要

		-调用方式不同：
			-方法调用：变量.方法名（参数）
			-函数调用：函数名（参数）
		-传入的参数不同：
			-函数：参数是什么类型就传入什么类型
			-方法：参数为值类型可传入指针类型，参数为指针类型可以传入值类型
*/
package main

import "fmt"

// 定义一个结构体：
type Student struct {
	Name string
	Age  int
}

// 定义结构体的方法：
func (stu Student) test1() {
	fmt.Println(stu.Name)
}

// 定义函数：
func test2(stu Student) {
	fmt.Println(stu.Name)
}
func main() {
	// 方法与函数的调用方式：
	s := Student{
		Name: "最帅胡",
		Age:  23,
	}

	//结构体方法的调用
	s.test1()
	// 函数的调用：
	test2(s)
}
